package com.castle.fortress.admin.orders.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.math.BigDecimal;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.util.Date;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
 * 优惠券 实体类
 *
 * @author whc
 * @since 2023-01-05
 */
@Data
@ApiModel(value = "saleCoupon对象", description = "优惠券")
public class SaleCouponDto implements Serializable {
	private static final long serialVersionUID = 1L;
	@JsonSerialize(using = ToStringSerializer.class)
	@ApiModelProperty(value = "主键")
	@JsonProperty("id")
	private Long id;
	@ApiModelProperty(value = "优惠券名称")
	@JsonProperty("couponName")
	private String couponName;
	@ApiModelProperty(value = "领取中心显示")
	@JsonProperty("getType")
	private Integer getType;
	@ApiModelProperty(value = "每人限领张数")
	@JsonProperty("getMax")
	private Integer getMax;
	@ApiModelProperty(value = "领取卡券链接")
	@JsonProperty("getUrl")
	private String getUrl;
	@ApiModelProperty(value = "消费方式")
	@JsonProperty("useType")
	private Integer useType;
	@ApiModelProperty(value = "退回方式")
	@JsonProperty("returnType")
	private Integer returnType;
	@ApiModelProperty(value = "消费满多少可用 0 不限制")
	@JsonProperty("enough")
	private BigDecimal enough;
	@ApiModelProperty(value = "时间限制类型")
	@JsonProperty("timeLimit")
	private Integer timeLimit;
	@ApiModelProperty(value = "获得后可使用 0 不限时间 >0 天")
	@JsonProperty("timeDays")
	private Integer timeDays;
	@DateTimeFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@JsonFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@ApiModelProperty(value = "开始时间")
	@JsonProperty("timeStart")
	private Date timeStart;
	@DateTimeFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@JsonFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@ApiModelProperty(value = "结束时间")
	@JsonProperty("timeEnd")
	private Date timeEnd;
	@ApiModelProperty(value = "返利方式")
	@JsonProperty("backType")
	private Integer backType;
	@ApiModelProperty(value = "抵扣")
	@JsonProperty("deduct")
	private String deduct;
	@ApiModelProperty(value = "折扣")
	@JsonProperty("discount")
	private String discount;
	@ApiModelProperty(value = "介绍")
	@JsonProperty("desc")
	private String desc;
	@ApiModelProperty(value = "总发放数量 -1 不限制")
	@JsonProperty("total")
	private String total;
	@ApiModelProperty(value = "购买价格")
	@JsonProperty("money")
	private String money;
	@ApiModelProperty(value = "消耗积分")
	@JsonProperty("credit")
	private BigDecimal credit;
	@ApiModelProperty(value = "排序")
	@JsonProperty("displayOrder")
	private Integer displayOrder;
	@ApiModelProperty(value = "是否限制商品")
	@JsonProperty("limitGoodType")
	private Integer limitGoodType;
	@ApiModelProperty(value = "是否限制商品分类")
	@JsonProperty("limitGoodCateType")
	private Integer limitGoodCateType;
	@ApiModelProperty(value = "限制商品分类")
	@JsonProperty("limitGoodCateIds")
	private String limitGoodCateIds;
	@ApiModelProperty(value = "限制商品")
	@JsonProperty("limitGoodIds")
	private String limitGoodIds;
	@ApiModelProperty(value = "是否限制会员级别 ")
	@JsonProperty("isLimitLevel")
	private Integer isLimitLevel;
	@ApiModelProperty(value = "会员级别")
	@JsonProperty("limitLevelIds")
	private String limitLevelIds;
	@ApiModelProperty(value = "状态")
	@JsonProperty("status")
	private Integer status;
	@JsonSerialize(using = ToStringSerializer.class)
	@ApiModelProperty(value = "创建人")
	@JsonProperty("createUser")
	private Long createUser;
	@DateTimeFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@JsonFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@ApiModelProperty(value = "创建时间")
	@JsonProperty("createTime")
	private Date createTime;
	@JsonSerialize(using = ToStringSerializer.class)
	@ApiModelProperty(value = "修改人")
	@JsonProperty("updateUser")
	private Long updateUser;
	@DateTimeFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@JsonFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@ApiModelProperty(value = "修改时间")
	@JsonProperty("updateTime")
	private Date updateTime;
	@ApiModelProperty(value = "是否删除")
	@JsonProperty("isDeleted")
	private Integer isDeleted;
	@ApiModelProperty(value = "创建者姓名")
	@JsonProperty("createUserName")
	private String createUserName;

}
